package com.rop.system.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.rop.model.system.SysRole;
import com.rop.model.vo.AssignRoleVo;
import com.rop.model.vo.SysRoleQueryVo;

import java.util.Map;

/**
 * @Title: SysRoleService
 * @Author Rop
 * @Date 2023/4/6 21:23
 * @description: SysRoleService
 */

public interface SysRoleService extends IService<SysRole> {

    /**
     * 根据id查询角色详情
     *
     * @param id 角色id
     * @return 详情
     */
    SysRole getInfoById(Long id);

    /**
     * 一键恢复删除的角色
     *
     * @return 是否恢复成功
     */
    Boolean recover();

    /**
     * 条件分页查询
     *
     * @param pageParam      分页参数
     * @param sysRoleQueryVo 查询条件
     * @return 查询结果
     */
    IPage<SysRole> getList(Page<SysRole> pageParam, SysRoleQueryVo sysRoleQueryVo);

    /**
     * 获取用户角色数据
     * @param userId 用户id
     * @return 结果集
     */
    Map<String, Object> getUserRoleById(Long userId);

    /**
     * 用户角色分配
     * @param assignRoleVo 分配角色
     * @return 分配结果
     */
    boolean doAssign(AssignRoleVo assignRoleVo);
}
